iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
自我挑戰組

ASP.NET MVC5從入門到退坑系列 第 20

[Day20]Action過濾器

  • 分享至 

  • xImage
  •  

Action過濾器是ASP.NET MVC提供輔助開發者值行一些邏輯上的處理,例如用戶權限驗證、系統日誌等;
Action Filter可附加在Controller Action或Controller裡所有的Action上的屬性標籤

Authorization Filters

Authorization Filters是用於Action執行前進行判斷,是所有Filter裡最早被執行的,主要用於身分驗證或權限檢查,在此階段達到安全性的防護

[Authorize]//需要登入才能使用此Action
public ActionResult Index(){...}

[Authorize]//附加在Controller上會讓Controller內所有Action都套用Filter的效果
public class HomeController : Controller{..}

[Authorize user="admin"]//限定只有使用者名稱為admin才能使用此Action
public ActionResult ManageUser(){...}

Action Filters

Action Filters是於Action執行前後進行額外處理,通常用在產生log檔或cache
1.AsyncTimeoutAttribute
用來設定非同步Action方法的逾期時間,預設為45秒
2.NoAsyncTimeoutAttribute
讓非同步Action沒有逾期的時間限制

Result Filters

Result Filters是於Action還未回傳至Client端前所執行的一些邏輯判斷,或是修改輸出結果

[OutputCache(Duration=30)]//為此Action進行暫存30秒
public ActionResult Output(){...}

Exception Filters

Exception Filters用於執行階段發生例外,用來替例外進行處理,通常用於記錄錯誤或重新導向錯誤檢視;
ASP.NET MVC已把Exception Filters註冊成全域的Filters,所以不需在Action再套用;

//Exception Filters檔案路徑:~/App_Start/FilterConfig.cs
public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }
    }

上一篇
[Day19]模型繫結
下一篇
[Day21]電子商城(一)
系列文
ASP.NET MVC5從入門到退坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言